package com.lanswon.qzsmk.service.cardManageService;

import java.text.ParseException;
import java.util.List;

import com.lanswon.qzsmk.base.DwzPage;
import com.lanswon.qzsmk.exception.ApplicationException;
import com.lanswon.qzsmk.model.CardNoGenerated;
import com.lanswon.qzsmk.model.CardNoUseDetail;
import com.lanswon.qzsmk.vo.CardNoGeneratedVo;
import com.lanswon.qzsmk.vo.ImportBankFileVo;
import com.lanswon.qzsmk.vo.MakeCardQueryResultVo;

/**
 * 银行联名卡业务service
 * @author GU-YW
 *
 */
public interface BanckCardBusinessService {
	
	/**
	 * 显示银行文件列表
	 * @param vo
	 * @return
	 * @throws ApplicationException 
	 */
	DwzPage<ImportBankFileVo> showBankFileList(ImportBankFileVo vo) throws ApplicationException;
	
	/**
	 * 生成卡号提供给银行
	 * @param prefix
	 * @param num 卡号数量
	 * @param  cardpCode 卡产品
	 * @return
	 * @throws Exception
	 */
	Boolean generatorCitizenCardNo(String cardpCode, String prefix, Integer num) throws Exception;
	
	/**
	 * 读取银行文件执行相关业务操作
	 * @param vo
	 */
	public void readFileInfoByBank(ImportBankFileVo vo) throws Exception;
	
	/**
	 * 银行申请信息 生成制卡任务（新-->预制卡 ）
	 * @param list
	 * @param vv
	 * @throws Exception
	 */
	public void applyAndGeneratCardMakeTaskNew(List<String>list,ImportBankFileVo vv) throws Exception;
	
	/**
	 * 导出银行制卡文件
	 * @return 
	 */
	public List<String> exportBankMakeCardFile(String root,List<MakeCardQueryResultVo> list)throws ApplicationException;
	
	/**
	 * 潍坊银行制卡文件返回
	 * @param list
	 * @param vo
	 * @throws ParseException 
	 */
	public void returnMakeCardTaskByWF(List<String> list, ImportBankFileVo vo) throws ParseException;
	
	/**
	 * 建设银行制卡文件返回
	 * @param makeCardInfos 制卡文件数据
	 * @param cardInfos 卡号绑定文件数据
	 * @param vo
	 * @throws ParseException
	 */
	public void returnMakeCardTaskByJS(List<String> makeCardInfos,List<String> cardInfos, ImportBankFileVo vo) throws ParseException,Exception;
	/**
	 * 银行发卡文件
	 * @throws ParseException 
	 */
	public void returnActivateCardInfo(List<String> list,ImportBankFileVo vo) throws ParseException;
	
	/**
	 * 银行注销挂失解挂
	 * @param list
	 * @param vv
	 * @throws ApplicationException 
	 */
	public void updateLossCancleStatus(List<String>list,ImportBankFileVo vv) throws ApplicationException;
	
	/**
	 * 银行补卡换卡
	 * @param list
	 * @param vv
	 * @throws ApplicationException 
	 */
	public void updateChangeSupplemrntStatus(List<String>list,ImportBankFileVo vv) throws ApplicationException;
	/**
	 * 查询银行卡号批量生成记录
	 * @param cardNoGenerated
	 * @return
	 */
	public DwzPage<CardNoGeneratedVo> queryCardNoDetail(CardNoGeneratedVo cardNoGenerated);
	
	/**
	 * 查询某个卡号文件使用记录
	 * @param cardNoUseDetail
	 * @return
	 */
	public List<CardNoUseDetail>queryAllRecord (CardNoUseDetail cardNoUseDetail);
	
	

}
